package dssd.acciones;

import dssd.constantes.Constantes;
import dssd.modelo.Conductor;
import dssd.modelo.Rol;
import dssd.modelo.Usuario;
import dssd.servicios.IConductorService;

public class RegistrarAccion extends AbstractRegistrarAccion {

	private static final long serialVersionUID = -3366719829719763681L;
	private IConductorService conductorService;

	public String execute(){
		Usuario usuario = this.getUsuarioService().buscarUsuario(this.getDni());
		if (usuario == null){
			usuario = new Usuario (this.getNombre(), this.getApellido(), this.getDni(), this.getPassword(), (new Rol(Constantes.CONDUCTOR)));
		}else{
			if (usuario.tieneRol(Constantes.CONDUCTOR)){
				addActionError("Ya existe un usuario con ese DNI. Por favor especifique uno inexistente");
				return ERROR;
			}
		}
		addActionMessage("Registro exitoso");
		Conductor conductor = new Conductor(this.getFechaNacimiento(),usuario);
		this.getConductorService().registrarConductor(conductor);
		this.getSession().put("conductor", conductor);
		this.getSession().put("usuario", usuario);
		return SUCCESS;
	}

	public void setConductorService(IConductorService conductorService) {
		this.conductorService = conductorService;
	}

	public IConductorService getConductorService() {
		return conductorService;
	}

}
